using System;
using System.Collections.Generic;
using System.Text;
using Xfinity.Collections;

namespace Xfinity.AI
{
    public delegate float AStarNodeCostDelegate<T>(GraphNode<T> fromNode, GraphNode<T> node);
    public static class AStarSolver
    {
        public static LinkedList<GraphNode<T>> Solve<T>(Graph<T> graph, AStarNodeCostDelegate<T> costDelegate, GraphNode<T> startNode, GraphNode<T> goalNode)
        {
            LinkedList<GraphNode<T>> path = new LinkedList<GraphNode<T>>();
            path.AddFirst(new LinkedListNode<GraphNode<T>>(startNode));

            //do algorithm here.
            

            path.AddLast(new LinkedListNode<GraphNode<T>>(goalNode));
            return path;
        }
    }
}
